package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;

public class ParkRate extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 序号 */
    @Excel(name = "序号",prompt = "必填")
    private int num;

    /** 停车ID */
    @Excel(name = "停车费编号",prompt = "新增时不填")
    private String parkId;

    /** 项目名称 */
    @Excel(name = "项目名称",prompt = "必填")
    private String projectName;

    /** 单位名称 */
    @Excel(name = "单位名称",prompt = "必填")
    private String unitName;

    /** 车牌号 */
    @Excel(name = "车牌号",prompt = "必填")
    private String licensePlateNum;

    /** 单价 */
    @Excel(name = "单价")
    private Double unitPrice;

    /** 起始日期 */
    @Excel(name = "起始日期", width = 30, dateFormat = "yyyy-MM-dd", prompt = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;
    private Date createBeginTime;
    private Date createOverTime;

    /** 结束日期 */
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd", prompt = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;
    private Date updateBeginTime;
    private Date updateOverTime;

    /** 状态 */
    @Excel(name = "状态",readConverterExp = "0=正常,1=到期,2=退租", prompt = "正常/到期/退租")
    private String status;//正常（0）  到期（1）  退租（2）

    /** 开票时间 */
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd", prompt = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date billingTime;
    private Date billingBeginTime;
    private Date billingOverTime;

    /** 开票金额 */
    @Excel(name = "开票金额")
    private Double invoicedAmount;

    /** 到账时间 */
    @Excel(name = "到账时间", width = 30, dateFormat = "yyyy-MM-dd", prompt = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date paymentDate;
    private Date paymentBeginDate;
    private Date paymentOverDate;

    /** 到账金额 */
    @Excel(name = "到账金额")
    private Double amountReceived;

    /** 到账状态 */
    @Excel(name = "到账状态",readConverterExp = "0=已到账,1=未到账",prompt = "已到账/未到账")
    private String accountStatus;//已到账（0） 未到账（1）

    /** 删除标志（0代表存在 2代表删除） 暂无使用 */
    private String delFlag;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    /*附件数*/
    private Integer fileCount;

    public Integer getFileCount() {
        return fileCount;
    }

    public void setFileCount(Integer fileCount) {
        this.fileCount = fileCount;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getParkId() {
        return parkId;
    }

    public void setParkId(String parkId) {
        this.parkId = parkId;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    public String getLicensePlateNum() {
        return licensePlateNum;
    }

    public void setLicensePlateNum(String licensePlateNum) {
        this.licensePlateNum = licensePlateNum;
    }


    @Override
    public Date getCreateTime() {
        return createTime;
    }
    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Override
    public Date getUpdateTime() {
        return updateTime;
    }
    @Override
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getBillingTime() {
        return billingTime;
    }

    public void setBillingTime(Date billingTime) {
        this.billingTime = billingTime;
    }

    public Double getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(Double unitPrice) {
        this.unitPrice = unitPrice;
    }

    public Double getInvoicedAmount() {
        return invoicedAmount;
    }

    public void setInvoicedAmount(Double invoicedAmount) {
        this.invoicedAmount = invoicedAmount;
    }

    public Double getAmountReceived() {
        return amountReceived;
    }

    public void setAmountReceived(Double amountReceived) {
        this.amountReceived = amountReceived;
    }

    public Date getPaymentDate() {
        return paymentDate;
    }

    public void setPaymentDate(Date paymentDate) {
        this.paymentDate = paymentDate;
    }

    public String getAccountStatus() {
        return accountStatus;
    }

    public void setAccountStatus(String accountStatus) {
        this.accountStatus = accountStatus;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Date getCreateBeginTime() {
        return createBeginTime;
    }

    public void setCreateBeginTime(Date createBeginTime) {
        this.createBeginTime = createBeginTime;
    }

    public Date getCreateOverTime() {
        return createOverTime;
    }

    public void setCreateOverTime(Date createOverTime) {
        this.createOverTime = createOverTime;
    }

    public Date getUpdateBeginTime() {
        return updateBeginTime;
    }

    public void setUpdateBeginTime(Date updateBeginTime) {
        this.updateBeginTime = updateBeginTime;
    }

    public Date getUpdateOverTime() {
        return updateOverTime;
    }

    public void setUpdateOverTime(Date updateOverTime) {
        this.updateOverTime = updateOverTime;
    }

    public Date getBillingBeginTime() {
        return billingBeginTime;
    }

    public void setBillingBeginTime(Date billingBeginTime) {
        this.billingBeginTime = billingBeginTime;
    }

    public Date getBillingOverTime() {
        return billingOverTime;
    }

    public void setBillingOverTime(Date billingOverTime) {
        this.billingOverTime = billingOverTime;
    }

    public Date getPaymentBeginDate() {
        return paymentBeginDate;
    }

    public void setPaymentBeginDate(Date paymentBeginDate) {
        this.paymentBeginDate = paymentBeginDate;
    }

    public Date getPaymentOverDate() {
        return paymentOverDate;
    }

    public void setPaymentOverDate(Date paymentOverDate) {
        this.paymentOverDate = paymentOverDate;
    }

    @Override
    public String toString() {
        return "ParkRate{" +
                "num=" + num +
                ", parkId='" + parkId + '\'' +
                ", projectName='" + projectName + '\'' +
                ", unitName='" + unitName + '\'' +
                ", licensePlateNum='" + licensePlateNum + '\'' +
                ", unitPrice=" + unitPrice +
                ", createTime=" + createTime +
                ", createBeginTime=" + createBeginTime +
                ", createOverTime=" + createOverTime +
                ", updateTime=" + updateTime +
                ", updateBeginTime=" + updateBeginTime +
                ", updateOverTime=" + updateOverTime +
                ", status='" + status + '\'' +
                ", billingTime=" + billingTime +
                ", billingBeginTime=" + billingBeginTime +
                ", billingOverTime=" + billingOverTime +
                ", invoicedAmount=" + invoicedAmount +
                ", paymentDate=" + paymentDate +
                ", paymentBeginDate=" + paymentBeginDate +
                ", paymentOverDate=" + paymentOverDate +
                ", amountReceived=" + amountReceived +
                ", accountStatus='" + accountStatus + '\'' +
                ", delFlag='" + delFlag + '\'' +
                ", remark='" + remark + '\'' +
                ", fileCount=" + fileCount +
                '}';
    }
}
